As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option is an Information Handling System (IHS). An IHS generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes. Because technology and information handling needs and requirements may vary between different applications, IHSs may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in IHSs allow for IHSs to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, global communications, etc. In addition, IHSs may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.
A typical IHS includes a processor (e.g., a multi-core processor), a basic input output system (BIOS), and a volatile memory (e.g., a random access memory (RAM) or the like), among numerous other components. A BIOS, for example, is a type of firmware stored in a chipset separate and distinct from the processor, that is used during the booting process. Generally, BIOS firmware is built into the IHS, and it is the first software the processor executes when the IHS is powered on.
A few of the main purposes of a BIOS include: initializing the IHS's hardware components, testing those components, and loading a boot loader or an operating system (OS) onto the IHS' memory. The BIOS also provides an abstraction layer to enable application programs and/or OSs to interact with certain hardware components such as, for example, keyboard(s), display(s), and/or other input/output (I/O) devices in a seamless manner. To these applications and/or the OS, variations in the IHS hardware may be hidden to the extent those applications and/or OS use BIOS services instead to attempting to directly access the hardware.
The Unified Extensible Firmware Interface (UEFI) was designed as a successor to conventional BIOS, aiming to address certain technical shortcomings. As of 2014, new IHS hardware predominantly ships with UEFI firmware instead of a BIOS.
The inventor hereof has recognized that reducing BIOS and/or UEFI boot time should be an area of focus, not just for client systems but also across servers and other IHSs. With the ever increasing amount of system memory and larger I/O configuration (especially in virtualized servers), keeping boot times within reasonable limits continues to be a challenge for the entire the industry.
For instance, with presently available technologies, even a routine BIOS power-on self test (POST) can take several minutes. A large portion of that delay results from slow accesses to the BIOS through the BIOS' serial peripheral interface (SPI) over a low pin count (LPC) bus, detection and configuration of memory in-line memory modules (DIMMs), retrieval and caching of instructions from peripheral devices, and/or loading of Optional Read Only Memory (ORPOM) firmware of adapter cards that control bootable peripherals.